编译 | 伍杏玲
出品 | 程序人生(ID:coder_life)
——Talk is cheap,Show me the code!以上段子还真不是段子,近日,Linux 之父Linus Torvalds 删除了工程师提交的关于对 Intel CPU 的Snoop攻击补丁。 今天三月,Intel CPU曝光容易受到新的Snoop攻击影响,可能会泄漏CPU内部存储器(缓存)中的数据。AWS工程师Pawel Wieczorkiewicz发现并报告了此攻击方法,该攻击被描述为“Snoop辅助L1数据采集”,或“Snoop”(CVE-2020-0550),这些攻击可能会影响了一系列Intel Xeon和Core CPU。。于是AWS工程师Balbir Singh为Linux内核写了个补丁,应用程序在任务关闭时选择加入刷新L1D缓存的功能。Balbir Singh表示: “这可以保护数据在任务切换到上下文后不被旁通道窃听或泄漏。” 该补丁本来会随Linux内核版本5.8一起发布。这个功能将允许应用程序以选择加入的方式调用prctl(2),在任务离开CPU后刷新L1D缓存,前提是硬件支持这个任务。Linus 认为这个补丁程序会允许选择加入这个补丁的程序应用降低其他应用程序的CPU性能,他在邮件里详细描述:
https://lore.kernel.org/lkml/CAHk-=wgXf_wQ9zrJKv2Hy4EpEbLuqty-Cjbs2u00gm7XcYHBfw@mail.gmail.com/“在我看来,这是将缓存刷新指令导出到用户空间,并提供一种方法来让用户说出'我要让其他人减速'的方式,” Linus在邮件里写道。 “换句话说,疯狂的'英特尔发布有故障的CPU,这会导致虚拟化问题'(我不太在意),还可能影响到不需要它的人和CPU以及增加完全没有意义的配置”。“我不希望有任何应用程序在运行的时候都是'哦,我很特别,很漂亮,如此娇嫩,我想在每个任务开关上刷新L1D,无论使用的是哪个CPU,以及是否存在问题'。如果这样做的话,应用程序不仅在降低自身速度,还在减慢其他应用程序的速度。”Linus表示其实对虚拟化的引用是针对AWS的,AWS与其他云提供商一样,通常启用了同步多线程(SMT)的虚拟CPU。 当启用SMT后,“在最低要求下,启用SMT应该完全禁用这种疯狂的伪安全性,因为在那种情况下它是完全没有意义的。调度根本不是SMT处于启用状态的同步点,因此在上下文切换刷新L1是很愚蠢的” 他说。 “在SMT上刷新L1D 是疯狂的,因为攻击者只会在同级内核上并在任务切换发生之前攻击L1内容”。参考:https://www.zdnet.com/article/linus-torvalds-rejects-stupid-aws-made-linux-patch-for-intel-cpu-snoop-attack/#欢迎来留言#
留言点赞数量最多的前三名
程序人生携手【电子工业出版社-博文视点】送出
《自动化测试实战宝典:Robot Framework + Python从小工到专家》一本
截至6月12日12:00点
更多精彩推荐
☞真惨!连各大编程语言都摆起地摊了!
☞已中招!Android 面试常常失败在……| 原力计划
☞新浪微博回应热搜被暂停更新一周;即刻 APP 下架一年后恢复上线;Android 11 Beta 版发布| 极客头条
☞重构ncnn,腾讯优图开源新一代移动端推理框架TNN
☞从地摊看云计算:规模产业历程大揭秘
☞国外小伙怒喷加密货币行业:入行两年,我受够了!